Administrators of modern enterprise environments may face many challenges when providing access to application programs. One such challenge concerns the issue of delivering and maintaining (i.e. updating) applications to the environments in which they will eventually execute—large numbers of machines having different execution environments with varying types of access to multiple corporate networks. A second challenge concerns providing an environment on a target machine enabling execution of an application program without interfering with other application programs, which may have conflicting requirements, and in environments in which the application program may not have been designed to run (i.e. a single user application running in isolation within a multi-user operating system).
Provisioning and updating large numbers of application programs creates many concerns for information technology (IT) departments. One concern includes how to deliver applications to varying execution environments—including personal computers (executing many different types of operating systems), servers, blade machines, or virtual machines. Another concern includes how to update an application once delivered. For enterprise applications which are updated frequently, installation of upgrades to applications on differing types of target machines may be expensive and time consuming. An additional challenge is the centralized development and application of corporate policies to requests for access.
An additional concern in a typical enterprise environment is compatibility amongst applications in environments deploying large numbers of applications with varying requirements. An IT department may face many challenges in deploying an application program to target machines supporting varying execution environments and executing different subsets of available application programs, each application program having different, and potentially conflicting, installation requirements.
Ensuring compliance with various corporate policies creates additional concerns for administrators of typical enterprise environments. Assessing and authorizing execution of particular application programs on target machines on an individual application may be impractical. A centralized system enabling automatic evaluation of a target machine to determine compliance with, for example, a security policy or licensing agreement, prior to installation or execution of a particular application program would be desirable.
A method for installing an application once on a representative target machine and enabling delivery to a wide range of target environments upon request for access to the application by a particular target machine would be desirable. Enabling centralized application of policies to provide varying levels of access to an application, including selection of different methods for executing the application, responsive to the requirements of the application program or the characteristics of the local machine would also be desirable.